一、实战

1、通过正则表达式,获取想要的内容

  • ^:正则表达式开头
  • \w+\w表示任意一个字母或数字或下划线,也就是A~Z、a~z、0~9、_ 中任意一个,+表达式至少出现1次,相当于{1,}
  • \.:表示单纯的小数点
  • ?:表达式匹配0次或1次,相当于{0,1}
  • \d:任意一个数字,0~9中的任意一个
  • *:表达式不出现或出现任意次,相当于{0,}
1
2
3
4
5
6
7
8
9
10
11
12
13
@Test
public void patternMatchTest() {
String str = "_asda_a1sdjson_asda_a1sd.json";
// String s = "_asda_a1sd1d.json";
// 把要匹配的字符串写成正则表达式,然后要提取的字符使用括号括起来
// 在这里,我们要提取最后一个数字,正则规则就是“一个数字加上大于等于0个非数字再加上结束符”
// Pattern pattern = Pattern.compile("(\\w+)[^.*json\\.?\\d+]?$");
Pattern pattern = Pattern.compile("^(\\w+)\\.json\\.?\\d*$");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
System.out.println(matcher.group(1));
}
}

返回结果:

1
_asda_a1sdjson_asda_a1sd

上述表达式也适用于:asd.json.1,执行的结果为:asd